package com.example.shopping.service;

import com.example.shopping.entity.GoodsType;
import com.example.shopping.repository.GoodsTypeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Service
public class GoodsTypeServiceImpl implements GoodsTypeService{
    @Autowired
    private GoodsTypeRepository goodsTypeRepository;
    @Override
    public List<GoodsType> findAll() {
        return goodsTypeRepository.findAll();
    }

    @Override
    public void saveGoodsType(GoodsType goodsType) {
        goodsTypeRepository.save(goodsType);
    }

    @Override
    public void deleteByTcode(String tcode) {
        goodsTypeRepository.deleteById(tcode);
    }

    @Override
    public GoodsType findByTcode(String tcode) {
        return (GoodsType) goodsTypeRepository.findTop1ByTcodeLike(tcode);
    }

    @Override
    public void updateGoodsType(GoodsType goodsType) {
        goodsTypeRepository.save(goodsType); // 如果 tcode 存在则更新，否则插入
    }

    @Override
    public Map<String, String> findAllGoodsTypeAsMap() {
        return goodsTypeRepository.findAllGoodsTypeAsMap().stream()
                .collect(Collectors.toMap(
                        map -> (String) map.get("tcode"),
                        map -> (String) map.get("tname")
                ));
    }


}
